import { Tooltip, message } from 'antd';
import pageStyles from '@/common/pageLayout.less';
import { downloadTemplate, getFileNameNotType, getTenantID, splitFileUrl, tooltipLength } from '@/utils';
import { ColumnsRenderFun, DictionaryRenderFun, formatDecimal, getColorTextDoms, isShowPass, renderFileFunc } from '../../Acommon';
import { ILoadMapTypeAll } from '@/common';
import MyIcon from '@/components/MyIcon';
import { isShowUploadBtn } from '../../NeedManage/common/Format';
/**
 * 排序
 * */
const getSorter = (prev: Record<string, any>, next: Record<string, any>): number => (prev > next ? 1 : -1);

export const DetailTableColumns = (curRes: Record<string, any>, operateFuns: any, recordObj: any) => {
  return [
    // {
    //   title: '标的类别',
    //   dataIndex: 'supplyTypeName',
    //   key: 'supplyTypeName',
    //   width: 135,
    //   fixed: 'left',
    //   render: (text: string, record: Record<string, any>) => DictionaryRenderFun({ text }),
    // },
    {
      title: '标的名称',
      dataIndex: 'fullName',
      key: 'fullName',
      width: 165,
      visible: true,
      fixed: 'left',
      sorter: (a: any, b: any) => getSorter(a?.fullName, b?.fullName),
      render: (text: string | null, record) => {
        /**货物类和下面两个子类都可以查看详情抽屉*/
        if (
          (record?.supplyType == `${getTenantID()}${ILoadMapTypeAll.PURCHASE_CATEGORY}1003` ||
            record?.supplyType == `${getTenantID()}${ILoadMapTypeAll.PURCHASE_CATEGORY}1004` ||
            record?.supplyType == `${getTenantID()}${ILoadMapTypeAll.PURCHASE_CATEGORY}1000`) &&
          curRes?.['/materialController/details/{params}']
        ) {
          return (
            <a onClick={() => operateFuns?.onShowDrawer(record)} style={{ color: '100%' }}>
              <Tooltip title={tooltipLength(text, 50)}>
                <span className={pageStyles['over-flow-hidden']}>{text ? text : '--'}</span>
              </Tooltip>
            </a>
          );
        } else {
          return ColumnsRenderFun({ text });
        }
      },
    },
    {
      title: '规格要求（参数）',
      dataIndex: 'needParams',
      key: 'needParams',
      width: 180,
      visible: true,
      fixed: 'left',
      render: (text: string | null) => ColumnsRenderFun({ text }),
      sorter: (a: any, b: any) => getSorter(a?.needParams, b?.needParams),
    },

    {
      title: '预估单价（元）',
      dataIndex: 'expectPrice',
      key: 'expectPrice',
      width: 170,
      visible: true,
      render: (text: string | null) => {
        return (
          <Tooltip>
            <span className={pageStyles['over-flow-hidden']}>{text ? formatDecimal(text) : '--'}</span>
          </Tooltip>
        );
      },
      sorter: (a: any, b: any) => getSorter(a?.expectPrice, b?.expectPrice),
    },
    {
      title: '需求数量（单位）',
      dataIndex: 'expectNum',
      key: 'expectNum',
      width: 180,
      visible: true,
      render: (text: string | null, record) => {
        return (
          <div style={{ display: 'flex' }} className={pageStyles['over-flow-hidden']}>
            <div style={{ marginRight: '8px' }}>{text || '--'}</div>
            {getColorTextDoms(record?.unitBusinessName)}
          </div>
        );
      },
      sorter: (a: any, b: any) => getSorter(a?.expectNum, b?.expectNum),
    },
    {
      title: '预估总价（元）',
      dataIndex: 'expectSum',
      key: 'expectSum',
      width: 170,
      visible: true,
      render: (text: string | null) => {
        return (
          <Tooltip>
            <span className={pageStyles['over-flow-hidden']}>{text ? formatDecimal(text) : '--'}</span>
          </Tooltip>
        );
      },
      sorter: (a: any, b: any) => getSorter(a?.expectSum, b?.expectSum),
    },
    {
      title: '项目编号',
      dataIndex: 'projectCode',
      key: 'projectCode',
      width: 200,
      render: (text, record) => {
        return (
          <Tooltip title={text}>
            <div className={pageStyles['over-flow-hidden']}>{text || '--'}</div>
          </Tooltip>
        );
      },
    },
    {
      title: '项目名称',
      dataIndex: 'projectName',
      key: 'projectName',
      width: 200,
      render: (text, record) => {
        return (
          <Tooltip title={text}>
            <div className={pageStyles['over-flow-hidden']}>{text || '--'}</div>
          </Tooltip>
        );
      },
    },
    {
      title: '项目金额（元）',
      dataIndex: 'projectSum',
      key: 'projectSum',
      width: 200,
      render: (text, record) => {
        return <div className={pageStyles['over-flow-hidden']}>{formatDecimal(text) || '--'}</div>;
      },
    },
    {
      title: '标包号',
      dataIndex: 'packCode',
      key: 'packCode',
      width: 200,
      render: (text: string, record) => {
        return (
          <Tooltip title={text}>
            <div className={pageStyles['over-flow-hidden']}>{text || '--'}</div>
          </Tooltip>
        );
      },
    },
    {
      title: '是否平台',
      dataIndex: 'isPlatform',
      key: 'isPlatform',
      width: 150,
      render: (text: string, record) => {
        return isShowPass(text);
      },
    },
    {
      title: '是否进口',
      dataIndex: 'importFlag',
      key: 'importFlag',
      width: 160,
      visible: true,
      render: (text: number) => {
        return isShowPass(text);
      },
      sorter: (a: any, b: any) => getSorter(a?.importFlag, b?.importFlag),
    },
    {
      title: '是否单一来源',
      dataIndex: 'singleFlag',
      key: 'singleFlag',
      width: 160,
      visible: true,
      render: (text: number) => {
        return isShowPass(text);
      },
      sorter: (a: any, b: any) => getSorter(a?.singleFlag, b?.singleFlag),
    },
    {
      title: '计划采购时间',
      dataIndex: 'expectTime',
      key: 'expectTime',
      width: 200,
      visible: true,
      render: (text: string | null) => {
        return <span>{text ? text?.split(' ')?.[0]?.slice(0, 7) : '--'}</span>;
      },
      sorter: (a: any, b: any) => getSorter(a?.expectTime, b?.expectTime),
    },
    // {
    //   title: (
    //     <>
    //       <MyIcon type="icon-edit1" style={{ marginRight: '.5rem' }} />
    //       技术规范
    //     </>
    //   ),
    //   dataIndex: 'skillNormURL',
    //   key: 'skillNormURL',
    //   width: 250,
    //   render: (_, record) => {
    //     return renderFileFunc({
    //       record,
    //       fileName: 'skillNormURL',
    //       downloadAddress: '/purchaseNeedController/downloadFile',
    //       returnStr: '/',
    //     });
    //   },
    // },
    // {
    //   title: (
    //     <>
    //       <MyIcon type="icon-edit1" style={{ marginRight: '.5rem' }} />
    //       调研报告
    //     </>
    //   ),
    //   dataIndex: 'researchReportURL',
    //   key: 'researchReportURL',
    //   width: 250,
    //   render: (_, record) => {
    //     return renderFileFunc({
    //       record,
    //       fileName: 'researchReportURL',
    //       downloadAddress: '/purchaseNeedController/downloadFile',
    //       returnStr: '/',
    //     });
    //   },
    // },
    // {
    //   title: (
    //     <>
    //       <MyIcon type="icon-edit1" style={{ marginRight: '.5rem' }} />
    //       是否通过需求论证
    //     </>
    //   ),
    //   dataIndex: 'needProofFlag',
    //   key: 'needProofFlag',
    //   width: 190,
    //   render: (text: string | number, record: Record<string, any>) => {
    //     let isDis = Number(record?.expectSum) < 500000;

    //     if (!isDis) {
    //       return isShowPass(record?.needProofFlag);
    //     } else {
    //       return '/';
    //     }
    //   },
    // },
    // {
    //   title: (
    //     <>
    //       <MyIcon type="icon-edit1" style={{ marginRight: '.5rem' }} />
    //       需求论证意见
    //     </>
    //   ),
    //   dataIndex: 'needProofURL',
    //   key: 'needProofURL',
    //   width: 220,
    //   render: (text: string, record: Record<string, any>) => {
    //     return (
    //       <>
    //         {record?.['needProofURL'] && splitFileUrl(record?.['needProofURL']).length > 0
    //           ? splitFileUrl(record?.['needProofURL'])?.map((e, i) => {
    //               return (
    //                 <Tooltip title={e.attachName} key={new Date().getTime() * 859415685 + e?.attachName}>
    //                   <a
    //                     onClick={() => {
    //                       message.success('下载中，请稍后...');
    //                       downloadTemplate('/purchaseNeedController/downloadFile', e?.attachName, e?.attachUrl, () => {});
    //                     }}
    //                   >
    //                     <MyIcon type="icon-file-text-fill" />
    //                     &nbsp;
    //                     {getFileNameNotType(e.attachName, 8)}
    //                   </a>
    //                 </Tooltip>
    //               );
    //             })
    //           : '/'}
    //       </>
    //     );
    //   },
    // },
    // {
    //   title: (
    //     <>
    //       <MyIcon type="icon-edit1" style={{ marginRight: '.5rem' }} />
    //       是否通过进口专业人员论证
    //     </>
    //   ),
    //   dataIndex: 'needImportFlag',
    //   key: 'needImportFlag',
    //   width: 260,
    //   render: (text: number | string, record: Record<string, any>) => {
    //     if (record?.importFlag == 1) {
    //       return isShowPass(record?.needImportFlag);
    //     } else {
    //       return '/';
    //     }
    //   },
    // },
    // {
    //   title: (
    //     <>
    //       <MyIcon type="icon-edit1" style={{ marginRight: '.5rem' }} />
    //       进口专业人员论证意见
    //     </>
    //   ),
    //   dataIndex: 'needImportURL',
    //   key: 'needImportURL',
    //   width: 220,
    //   render: (text: string, record: Record<string, any>) => {
    //     return (
    //       <>
    //         {record?.['needImportURL'] && splitFileUrl(record?.['needImportURL']).length > 0
    //           ? splitFileUrl(record?.['needImportURL'])?.map((e, i) => {
    //               return (
    //                 <Tooltip title={e.attachName} key={new Date().getTime() * 859415685 + e?.attachName}>
    //                   <a
    //                     onClick={() => {
    //                       message.success('下载中，请稍后...');
    //                       downloadTemplate('/purchaseNeedController/downloadFile', e?.attachName, e?.attachUrl, () => {});
    //                     }}
    //                   >
    //                     <MyIcon type="icon-file-text-fill" />
    //                     &nbsp;
    //                     {getFileNameNotType(e.attachName, 8)}
    //                   </a>
    //                 </Tooltip>
    //               );
    //             })
    //           : '/'}
    //       </>
    //     );
    //   },
    // },
    // {
    //   title: (
    //     <>
    //       <MyIcon type="icon-edit1" style={{ marginRight: '.5rem' }} />
    //       是否通过单一来源论证
    //     </>
    //   ),
    //   dataIndex: 'needSingleFlag',
    //   key: 'needSingleFlag',
    //   width: 230,
    //   render: (text: number | string, record: Record<string, any>) => {
    //     if (record?.singleFlag == 1) {
    //       return isShowPass(record?.needSingleFlag);
    //     } else {
    //       return '/';
    //     }
    //   },
    // },
    // {
    //   title: (
    //     <>
    //       <MyIcon type="icon-edit1" style={{ marginRight: '.5rem' }} />
    //       单一来源论证意见
    //     </>
    //   ),
    //   dataIndex: 'needSingleURL',
    //   key: 'needSingleURL',
    //   width: 220,
    //   render: (text: string, record: Record<string, any>) => {
    //     return (
    //       <>
    //         {record?.['needSingleURL'] && splitFileUrl(record?.['needSingleURL']).length > 0
    //           ? splitFileUrl(record?.['needSingleURL'])?.map((e, i) => {
    //               return (
    //                 <Tooltip title={e.attachName} key={new Date().getTime() * 859415685 + e?.attachName}>
    //                   <a
    //                     onClick={() => {
    //                       message.success('下载中，请稍后...');
    //                       downloadTemplate('/purchaseNeedController/downloadFile', e?.attachName, e?.attachUrl, () => {});
    //                     }}
    //                   >
    //                     <MyIcon type="icon-file-text-fill" />
    //                     &nbsp;
    //                     {getFileNameNotType(e.attachName, 8)}
    //                   </a>
    //                 </Tooltip>
    //               );
    //             })
    //           : '/'}
    //       </>
    //     );
    //   },
    // },
    {
      title: '已采数量',
      dataIndex: 'completeNum',
      key: 'completeNum',
      width: 135,
      fixed: 'right',
      visible: true,
      render: (text: string, record) => {
        return (
          <div style={{ display: 'flex' }} className={pageStyles['over-flow-hidden']}>
            <div style={{ marginRight: '8px' }}>{text || 0}</div>
            {getColorTextDoms(record?.unitBusinessName)}
          </div>
        );
      },
    },
    {
      title: '锁定数量',
      dataIndex: 'lockNum',
      key: 'lockNum',
      width: 135,
      fixed: 'right',
      visible: true,
      render: (text: string, record) => {
        return (
          <div style={{ display: 'flex' }} className={pageStyles['over-flow-hidden']}>
            <div style={{ marginRight: '8px' }}>{text || 0}</div>
            {getColorTextDoms(record?.unitBusinessName)}
          </div>
        );
      },
    },
    {
      title: '待采数量',
      dataIndex: 'prepareNum',
      key: 'prepareNum',
      width: 135,
      fixed: 'right',
      visible: true,
      render: (text: string, record) => {
        return (
          <div style={{ display: 'flex' }} className={pageStyles['over-flow-hidden']}>
            <div style={{ marginRight: '8px' }}>{text || 0}</div>
            {getColorTextDoms(record?.unitBusinessName)}
          </div>
        );
      },
    },
  ];
};
